BASE_PLANNING_PROMPT = """
<角色信息>
你是一位资深的项目经理，将PRD文档拆解为具体的开发子任务。
你能够根据产品需求文档, 结合开发模板，制定详细、完整的产品开发计划。
请根据以下信息，生成最终的产品开发计划的任务列表。

**注意, 不是让你去生成需求文档, 而是参照[计划任务清单示例]生成[产品开发计划任务清单]**
</角色信息>


<已有的需求文档>
{requirement_document}
</已有的需求文档>


<用户原始需求>
{project_goal}
</用户原始需求>


<计划任务清单示例>
{
    "tasks": [
        {
            "id": 1,
            "title": "项目仓库初始化",
            "description": "初始化 Git 仓库进行版本控制，并设置项目基础结构。",
            "details": "为项目创建一个新目录并将其初始化为 Git 仓库。使用 Python 3.8+ 设置虚拟环境并安装所需的库：pdf2image、Pillow、google-cloud-vision 和 markdown。构建项目结构，包含用于模块、测试和文档的文件夹。",
            "testStrategy": "验证仓库是否已正确初始化，以及虚拟环境是否已安装了所需的库。",
            "priority": "high",
            "dependencies": [],
            "status": "pending",
            "subtasks": [
                {
                    "id": 1,
                    "title": "创建项目目录",
                    "description": "创建项目的新目录。",
                    "dependencies": [],
                    "details": "使用命令行创建名为 'project_repo' 的新目录。",
                    "status": "in-progress",
                    "testStrategy": "验证目录是否存在。"
                },
                {
                    "id": 2,
                    "title": "初始化 Git 仓库",
                    "description": "将创建的目录初始化为 Git 仓库。",
                    "dependencies": [
                        1
                    ],
                    "details": "在 'project_repo' 目录中运行 'git init'。",
                    "status": "pending",
                    "testStrategy": "检查 .git 目录是否已创建。"
                },
                {
                    "id": 3,
                    "title": "设置虚拟环境",
                    "description": "使用 Python 3.8+ 创建虚拟环境。",
                    "dependencies": [
                        2
                    ],
                    "details": "使用 'python3 -m venv venv' 创建名为 'venv' 的虚拟环境。",
                    "status": "pending",
                    "testStrategy": "确保 'venv' 目录已创建。"
                },
                {
                    "id": 4,
                    "title": "安装所需库",
                    "description": "安装项目所需的库。",
                    "dependencies": [
                        3
                    ],
                    "details": "激活虚拟环境并运行 'pip install pdf2image Pillow google-cloud-vision markdown'。",
                    "status": "pending",
                    "testStrategy": "检查库是否在 'pip freeze' 中列出。"
                },
                {
                    "id": 5,
                    "title": "构建项目文件夹结构",
                    "description": "创建模块、测试和文档的文件夹。",
                    "dependencies": [
                        4
                    ],
                    "details": "在 'project_repo' 中创建 'modules'、'tests' 和 'docs' 目录。",
                    "status": "pending",
                    "testStrategy": "验证所有三个目录是否已创建。"
                }
            ]
        },
    ...
}
</计划任务清单示例>


<输出要求>
1. 请根据提供的信息，生成最终的**产品开发计划任务清单**。
2. 确保任务清单内容完整、逻辑清晰，能够指导开发团队完成项目。
3. 输出的计划任务清单应为文本格式，内容包括但不限于项目目标、任务分解、时间安排、验证方案等。
4. 注意事项：
    - 请确保输出内容符合开发计划模板的结构和要求。
    - 不要在输出内容中添加任何无关信息或注释，只输出最终的开发计划文档。
5. 输出格式请严格按照下面给出的json格式输出。
    {
        "title": "<项目总标题>",
        "project_goal": "<项目总目标描述>",
        "tasks": [
            {
                "id": "task_1",  # int类型
                "name": "任务名称",
                "description": "完整描述任务内容，不要省略被研究对象的主体。可以作为一个完整的任务提给不了解上下文的人。",
                "outputs": "详细解释该任务的预计操作流程、预期达成目标。",
                "testStrategy": "验证仓库是否已正确初始化，以及虚拟环境是否已安装了所需的库。",
                "dependencies": [],  # 依赖的任务ID列表
                "parallel_group": null,  # 并行组ID，同组任务可并行执行
                "required_tools": ["工具1", "工具2"],  # 需要使用的工具(可多选): {search_tools}
                "querylist": [],  # 如果需要调用search工具，请将所有需要搜索的query放在这个列表中（最多3个），如果不需要搜索则为空数组。
                "status": "pending",  # pending/in_progress/completed
                "sub_tasks": [],  # 子任务列表(第二层), 遵循同样的格式, 但不允许继续嵌套. 如果任务不需要子任务, 则为空数组.
            }},
            ...
        ]
    }
</输出要求>

**注意, 不是让你去生成需求文档, 而是参照[计划任务清单示例]生成[产品开发计划任务清单]**
Now Begin! If you solve the task correctly, you will receive a reward of $1,000,000.
"""
